package com.fyh.service;

import com.fyh.entity.community.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface CommunityService {

    /**
     * 获取所有帖子分类
     * @return
     */
    List<Category> getCategoryList();

    /**
     * 上传附件
     * @param file
     * @return
     */
    String uploadAttachment(MultipartFile file);

    /**
     * 发布帖子
     * @param postVO
     */
    void addPost(PostVO postVO);

    /**
     * 获取帖子列表
     * @param postPageDTO
     * @return
     */
    List<PostVO> getPostList(PostPageDTO postPageDTO);

    /**
     * 执行交互（点赞，点踩，取消）
     * @param reactionDTO
     */
    void reaction(ReactionDTO reactionDTO);

    /**
     * （取消）收藏帖子
     * @param reactionDTO
     */
    void favorite(ReactionDTO reactionDTO);

    /**
     * 获取帖子详情
     * @param postId
     * @return
     */
    PostVO getPostDetail(Long postId, Long userId);

    /**
     * 获取帖子一级回复列表
     * @param replyPageDTO
     * @return
     */
    List<ReplyVO> getReplyListByPostId(ReplyPageDTO replyPageDTO);

    /**
     * 获取帖子二级回复列表
     * @param replyPageDTO
     * @return
     */
    List<ReplyVO> getReplyReplyList(ReplyPageDTO replyPageDTO);

    /**
     * 发表回复
     * @param replyDTO
     */
    void addReply(ReplyDTO replyDTO);
}
